Method and system for precise placement

ABSTRACT

One embodiment provides a device comprising at least one movable unit, at least one sensor, a printer, at least one processor, and a non-transitory processor-readable memory device storing instructions that when executed by the at least one processor causes the at least one processor to perform operations. The operations include receiving layout and design information, receiving, from the at least one sensor, contextual information indicative that the at least one movable unit is in direct contact with a surface, and triggering the printer to print one or more markings on the surface as the at least one movable unit moves along the surface based on the layout and design information.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority from U.S. Provisional PatentApplication Ser. No. 62/773,949, filed on Nov. 30, 2018, incorporatedherein by reference.

TECHNICAL FIELD

One or more embodiments generally relate to building informationmodeling (BIM), in particular, a method and system for preciseplacement.

BACKGROUND

Prefabrication is the practice of assembling components of a structurein a factory or other manufacturing site, and transporting completeassemblies or sub-assemblies to the construction site where thestructure is to be located.

SUMMARY

One embodiment provides a device comprising at least one movable unit,at least one sensor, a printer, at least one processor, and anon-transitory processor-readable memory device storing instructionsthat when executed by the at least one processor causes the at least oneprocessor to perform operations. The operations include receiving layoutand design information, receiving, from the at least one sensor,contextual information indicative that the at least one movable unit isin direct contact with a surface, and triggering the printer to printone or more markings on the surface as the at least one movable unitmoves along the surface based on the layout and design information.

Another embodiment provides a method comprising receiving layout anddesign information, receiving, from at least one sensor of a device,contextual information indicative that at least one movable unit of thedevice is in direct contact with a surface, and triggering a printer ofthe device to print one or more markings on the surface as the at leastone movable unit moves along the surface based on the layout and designinformation.

One embodiment provides a non-transitory processor-readable medium thatincludes a program that when executed by a processor performing a methodcomprising receiving layout and design information, receiving, from atleast one sensor of a device, contextual information indicative that atleast one movable unit of the device is in direct contact with asurface, and triggering a printer of the device to print one or moremarkings on the surface as the at least one movable unit moves along thesurface based on the layout and design information.

These and other aspects and advantages of one or more embodiments willbecome apparent from the following detailed description, which, whentaken in conjunction with the drawings, illustrate by way of example theprinciples of the one or more embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

For a fuller understanding of the nature and advantages of theembodiments, as well as a preferred mode of use, reference should bemade to the following detailed description read in conjunction with theaccompanying drawings, in which:

FIG. 1 illustrates an example portable handheld building informationmodeling (BIM) device for precise placement, in one or more embodiments;

FIG. 2 illustrates example components of the portable handheld BIMdevice, in one or more embodiments;

FIG. 3 illustrates an example precise placement system, in one or moreembodiments;

FIG. 4A illustrates a side view of an example BIM device, in one or moreembodiments;

FIG. 4B illustrates a front view of the example BIM device, in one ormore embodiments;

FIG. 5 illustrates example markings printed by the BIM device in FIGS.4A-4B, in one or more embodiment;

FIG. 6 illustrates a flowchart of an example process for implementingprecise placement utilizing a portable handheld BIM device, in one ormore embodiments; and

FIG. 7 is a high-level block diagram showing an information processingsystem comprising a computer system useful for implementing thedisclosed embodiments.

DETAILED DESCRIPTION

The following description is made for the purpose of illustrating thegeneral principles of one or more embodiments and is not meant to limitthe inventive concepts claimed herein. Further, particular featuresdescribed herein can be used in combination with other describedfeatures in each of the various possible combinations and permutations.Unless otherwise specifically defined herein, all terms are to be giventheir broadest possible interpretation including meanings implied fromthe specification as well as meanings understood by those skilled in theart and/or as defined in dictionaries, treatises, etc.

One or more embodiments generally relate to voice command devices, inparticular, a method and system for emergent multi-modal interactionwith intelligent assistants in voice command devices. One embodimentprovides a device comprising at least one movable unit, at least onesensor, a printer, at least one processor, and a non-transitoryprocessor-readable memory device storing instructions that when executedby the at least one processor causes the at least one processor toperform operations. The operations include receiving layout and designinformation, receiving, from the at least one sensor, contextualinformation indicative that the at least one movable unit is in directcontact with a surface, and triggering the printer to print one or moremarkings on the surface as the at least one movable unit moves along thesurface based on the layout and design information.

Another embodiment provides a method comprising receiving layout anddesign information, receiving, from at least one sensor of a device,contextual information indicative that at least one movable unit of thedevice is in direct contact with a surface, and triggering a printer ofthe device to print one or more markings on the surface as the at leastone movable unit moves along the surface based on the layout and designinformation.

One embodiment provides a non-transitory processor-readable medium thatincludes a program that when executed by a processor performing a methodcomprising receiving layout and design information, receiving, from atleast one sensor of a device, contextual information indicative that atleast one movable unit of the device is in direct contact with asurface, and triggering a printer of the device to print one or moremarkings on the surface as the at least one movable unit moves along thesurface based on the layout and design information.

BIM (Building Information Modeling) is a model-based process that givesarchitecture, engineering, and construction professionals insight andtools to more efficiently plan, design, construct, and manage buildingsand infrastructure.

For expository purposes, the term “field assembled walls” as used inthis specification generally refers to wall panels assembled onsite.

For expository purposes, the term “electronic device” as used in thisspecification generally refers to any type of electronic device such as,but not limited to, desktop computers, laptops, smart phones, tablets,etc.

In recent times, it has become increasingly common for wall panels foruse in wood frame construction projects to be assembled offsite in afactory or a similar manufacturing setting. Wall panels assembledoffsite are designed and assembled on computer numeric control (CNC)equipment to exact tolerances, and are often produced faster andsignificantly cheaper than wall panels assembled onsite (i.e., at theconstruction site where the wood frame construction project is located)by construction carpenters.

For expository purposes, the term “precise placement” as used in thisspecification generally refers to embedding/installing one or morepieces of anchoring hardware (e.g., anchor bolts, hold down devices,straps, and other types of construction elements) accurately/preciselyon a surface to support a structure (e.g., a wall).

For a wall panel system to work efficiently, fully assembled wallsrequire accurate/precise placement/positioning of anchoring hardwareembedded in concrete to support the walls. Presently, field installationof anchoring hardware (i.e., installation of anchoring hardware onsite)is accomplished in a very rudimentary way using tape measure, strings,and any number of manual marking systems to locate the anchoringhardware prior to pouring of concrete in which the anchoring hardwarewill be embedded. Such conventional solutions are prone to error andinaccuracy.

Unlike field assembled walls, fully assembled walls do not allow foradjustments or adjustments to be made with ease. For example, utilizingfully assembled walls prevents shifting of a window or a door about a¼inch to fit between anchor bolts embedded in concrete that were notplaced/positioned correctly. The anchor bolts will need to be removedfrom the concrete (e.g., by cutting the anchor bolts off), new holes fornew anchor bolts drilled at correct locations in the concrete, and thenew anchor bolts epoxied at the correct locations. This is a large andcostly solution often requiring field inspection by an engineer duringthe epoxy phase to ensure process conformance. Further, if a new anchorbolt needs to be positioned/placed from a removed anchor bolt at about adistance of less than a diameter of the removed anchor bolt, it is notpossible to drill a clean hole for the new anchor bolt because a correctlocation for the new anchor bolts overlaps with the removed anchor bolt.Alternatively, the fully assembled walls themselves can be modifiedincluding stud nails being cut and window/door assembly materials (e.g.,king studs, trimmers, header, & sills) being shifted left or right tofit the misplaced anchor bolts. However, this alternative solution isalso involved and time consuming. For example, if a fully assembled wallcomprises shear plywood skin, wood members of the wall may becomedestroyed as the wall is modified as shear nailing is typically about 2inches on center.

One or more embodiments generally relate to building informationmodeling (BIM), in particular, a method and system for preciseplacement. One or more embodiments of the inventions are applicable totypes of construction projects, such as wood frame constructionprojects. One embodiment of the invention provides a portable handheldBIM device for precise placement.

FIG. 1 illustrates an example portable handheld BIM device 100 forprecise placement, in one or more embodiments. FIG. 2 illustratesexample components of the portable handheld BIM device 100, in one ormore embodiments. In one embodiment, the BIM device 100 comprisescomputing resources, such as one or more processor units 110 and one ormore storage units 120. In one embodiment, the BIM device 100 comprisesa housing 100A (FIG. 4A) configured to maintain one or more componentsof the BIM device 100 (e.g., the computing resources).

In one embodiment, the BIM device 100 comprises a printer unit 180configured to print. The printer unit 180 comprises, but is not limitedto, one of the following types of printer: an inkjet printhead 180A(FIG. 4A), a strip printer, etc.

In one embodiment, the BIM device 100 comprises one or more movableunits 170 configured to move the BIM device 100 along a surface. In oneembodiment, the one or more movable units 170 comprise one or morerotatable or slidable units configured to roll or slide the BIM device100 along a surface. For example, in one embodiment, the one or moremovable units 170 comprises a plurality of roller wheels 170A (FIG. 4A)designed to roll along a surface (e.g., a top edge 10A of a form board10, such as a concrete form board, as shown in FIG. 4A) when the BIMdevice 100 is placed/positioned directly on top of the surface and theBIM device 100 is triggered to physically move along the surface viahandheld movement by a user 30.

In one embodiment, the housing 100A is designed/shaped for handheldmovement by a user 30. A user 30 can control physical movement of theBIM device 100 by mechanically/physically interacting with a portion ofthe housing 100A. For example, a user 30 can control the BIM device 100to physically move along a desired path (e.g., a linear path) on asurface by applying hand/finger pressure to a portion of the housing100A to roll the BIM device 100 over the surface via the roller wheels170A.

In one embodiment, each roller wheel 170A is wrapped in rubber oranother type of material suitable for rolling and to reduce slippage. Inone embodiment, the printer unit 180 is disposed/housed suspended inbetween the roller wheels 170A, as shown in FIG. 4A.

As another example, in one embodiment, the one or more movable units 170comprise a rotatable sliding base.

In one embodiment, the BIM device 100 has at least the followingoperating modes: (1) a print mode during which the printer unit 180 isactivated for printing, and (2) a non-print mode during which theprinter unit 180 is not activated for printing.

One or more software applications may execute/operate on the BIM device100 utilizing the resources of the BIM device 100. In one embodiment,the one or more software applications include, but are not limited to, aprecise placement system 200 configured to control printing of theprinter unit 180 based on layout and design information and contextualinformation relating to the BIM device 100.

In one embodiment, the BIM device 100 comprises one or more input/output(I/O) units 130 integrated in or coupled to the BIM device 100. In oneembodiment, the one or more I/O units 130 include, but are not limitedto, a physical user interface (PUI) and/or a graphical user interface(GUI), such as a keyboard, a keypad, a touch interface, a knob, abutton, a display screen 130A (FIG. 4A), an input port 130B (FIG. 4A)for connecting with a plug-and-play portable storage device 50 (e.g., aUniversal Serial Bus (USB) port for connecting to a USB flash drive(i.e., a thumb drive) or another type of USB storage device), anindicator light, a haptic feedback device, an audio reproduction device(e.g., a speaker), etc. In one embodiment, a user 30 can utilize atleast one I/O unit 130 to configure one or more user preferences,configure one or more parameters (e.g., user permissions), provide input(e.g., user selection of operating mode, desired layout and designinformation), etc.

In one embodiment, the BIM device 100 comprises a communications unit150 configured to exchange data with one or more server devices 20and/or one or more electronic device 40 over a communicationsnetwork/connection (e.g., a wireless connection such as a Wi-Ficonnection or a cellular data connection, a wired connection, or acombination of the two). The communications unit 150 may comprise anysuitable communications circuitry operative to connect to acommunications network (e.g., communications network 40) and to exchangecommunications operations and media from the BIM device 100 to otherdevices connected to the communications network. The communications unit150 may be operative to interface with the communications network usingany suitable communications protocol such as, for example, Wi-Fi (e.g.,an IEEE 802.11 protocol), Bluetooth®, high frequency systems (e.g., 900MHz, 2.4 GHz, and 5.6 GHz communication systems), infrared, GSM, GSMplus EDGE, CDMA, quadband, and other cellular protocols, VOIP, TCP-IP,or any other suitable protocol.

For example, a server device 20 may comprise a remote server (e.g., acomputer, device, or program that manages network resources, etc.)providing an online platform for hosting one or more online services(e.g., an online BIM service, etc.) and/or distributing one or moresoftware mobile applications. As another example, the precise placementsystem 200 and/or software updates for the precise placement system 200may be loaded onto or downloaded to the BIM device 100 from a digitaldistribution service (e.g., Google Play, the App Store, etc.) operatingon a server device 20. As yet another example, a server device 20 maycomprise a cloud computing environment providing shared pools ofconfigurable computing system resources and higher-level services (e.g.,a BIM cloud application).

Examples of an electronic device 40 include, but are not limited to, adesktop computer, a mobile electronic device (e.g., a tablet, a smartphone, a laptop, etc.), a wearable device (e.g., a smart watch, etc.),an Internet of Things (IoT) device, etc.

In one embodiment, the precise placement system 200 may be pre-loadedonto the BIM device 100.

In one embodiment, the BIM device 100 comprises one or more sensor units140 integrated in or coupled to the BIM device 100, such as a camera, aproximity sensor, a laser (e.g., for laser measurement, laser balancing,laser leveling, and/or any other laser technology), a microphone, a GPS,etc. A sensor unit 140 may be utilized to capture content and/orsensor-based contextual information. An application on the BIM device100 may utilize at least one sensor unit 140 to capture sensor-basedcontextual information, such as a microphone for audio data (e.g., voicecommands from a user 30 utilizing the BIM device 100, etc.), a camerafor image data (e.g., still and/or video images of an environmentsurrounding the BIM device 100, etc.), a GPS for location data (e.g.,location coordinates of the BIM device 100), etc. For example, theprecise placement system 500 may utilize a proximity sensor to detectwhen the BIM device 100 is positioned on top of a surface. As anotherexample, the precise placement system 500 may utilize a camera tocapture an image of an object to be marked (e.g., a wall) or an image ofan entire structure. As yet another example, the precise placementsystem 500 may utilize a GPS to determine location coordinates of theBIM device 100 for accuracy and to support future development oftechnology.

In one embodiment, if the BIM device 100 is in the non-print mode, theprecise placement system 200 is configured to receive an input filecomprising layout and design information relating to a structure (e.g.,a fully assembled wall). In one embodiment, the layout and designinformation comprises data indicative of a precise placement of eachpiece of anchoring hardware required to anchor and support thestructure. In one embodiment, the input file is generated by a softwareapplication (e.g., a BIM application) used to design the structure.

In one embodiment, an input file is received from a server device 20, anelectronic device 40, or a plug-and-play portable storage device 50connected to the BIM device 100.

In one embodiment, an input file may be stored on the one or morestorage units 120. A user 30 can save one or more input files (e.g.,reusable input files available for repeated use in multiple projects,such as production housing applications) to, and select an input filefrom, the one or more storage units 120.

In one embodiment, a user 30 can utilize the one or more I/O units 130of the BIM device 100 to view an object to be marked (via the printerunit 180) and/or select an object to be marked. For example, a displayscreen of the BIM device 100 may display an image (e.g., captured by acamera of the BIM device 100) of a wall to be marked or an image of anentire structure. If an image of an entire structure is displayed, theBIM device 100 can provide a GUI that the user 30 can interact with(e.g., via a touch interface) to select a component of the entirestructure, such as a wall, to mark.

In one embodiment, the precise placement system 200 is configured toexchange data with a companion software application (e.g., a companionmobile app) loaded onto or downloaded to an electronic device 40. A user30 may utilize the companion software application to view data (e.g., anobject to be marked) and/or provide user input (e.g., user selection ofa component of an entire structure to be marked).

In one embodiment, the one or more software applications on the BIMdevice 100 may further include one or more software mobile applicationsloaded onto or downloaded to the BIM device 100, such as a messagingapplication, a camera application, a social media application, etc. Asoftware mobile application on the BIM device 100 may exchange data withthe precise placement system 200.

In one embodiment, the BIM device 100 comprises a power unit 160configured to supply power to one or more other components of the BIMdevice 100. For example, in one embodiment, the BIM device 100 isbattery operated, and the power unit 160 comprises a rechargeablebattery.

In one embodiment, the BIM device 100 is suitable for all-weatherprinting. For example, the BIM device 100 can be used to print in wetclimates, hot climates, cold climates, and even in harsh weatherconditions/inclement climates. In one embodiment, the BIM device 100 issuitable for printing on different types of surfaces, such as, but notlimited to, substantially flat surfaces like form boards, irregularsurfaces like lumber, plywood, and oriented strand boards, etc.

FIG. 3 illustrates an example precise placement system 200, in one ormore embodiments. In one embodiment, the system 200 comprises a userinterface (UI) & sensors logic unit 210 configured to: (1) receive UI &sensor data captured by at least one I/O unit 130 and/or at least onesensor unit 140 of the BIM device 100, wherein the UI & sensor data isindicative of one or more detected physical interactions with the BIMdevice 100, (2) generate one or more activation signals in response tothe one or more physical interactions detected, and (3) generate controldata indicative of one or more adjustments/updates to a current state ofthe BIM device 100 (e.g., current operating mode of the BIM device,current configuration of the BIM device 100, etc.).

Examples of different detected physical interactions with the BIM device100 include, but are not limited to, a mechanical interaction (i.e.,mechanical actuation) with a movable/rotatable/adjustable member of theBIM device 100 (e.g., a user 30 mechanically/physically interacting withthe BIM device 100 by applying hand/finger pressure to the BIM device100 to roll the roller wheels 170A along a surface), a proximityinteraction (e.g., the BIM device 100 is directly on top of a surface),a UI activation such as an actuation of a PUI (e.g., a user 30interacting with a knob, a button, and/or another hardware I/O unit 130)or a GUI (e.g., a user 30 interacting with a touch screen and/or anothersoftware I/O unit 130).

In one embodiment, the system 200 comprises a device control and statelogic unit 220 configured to provide an electromechanical applicationprogramming interface (API) for communicating with one or moremechanical parts (“device mechanics”) 230 of the BIM device 100, such asthe one or more movable units 170 and/or the printer unit 180. Thedevice control and state logic unit 220 allows for the one or moredevice mechanics 230 to be controlled via the electromechanical APIbased on control data (e.g., from the UI & sensors logic unit 210 and/orfrom a printer action initiator 250).

In one embodiment, the device control and state logic unit 220 isconfigured to generate state data indicative of at least one of thefollowing: a current state of the BIM device 100, or one or more recentactions performed by the BIM device 100.

In one embodiment, the system 200 comprises a layout and design unit 240configured to: (1) receive an input file downloaded/loaded to the BIMdevice 100 or user selected from the one or more storage units 120, and(2) extract layout and design information from the input file.

In one embodiment, the system 200 comprises a printer action initiator250 configured to control printing of the printer unit 180. The printeraction initiator 250 provides an action API for communicating with thedevice control and state logic unit 220. The printer action initiator250 allows for making one or more adjustments/updates to a current stateof the BIM device 100 via the action API to control actions andbehaviors of the printer unit 180.

In one embodiment, the printer action initiator 250 is configured toreceive, as inputs, at least one of the following: (1) one or moreactivation signals from the UI and sensors logic unit 210, (2) statedata from the device control and state logic unit 220, and (3) layoutand design information from the layout and design unit 240. If theinputs received indicate that the BIM device 100 is in the print modeand the one or more movable units 170 of the BIM device 100 are indirect contact with a suitable surface onto which the printer unit 180can print (e.g., detected via at least one sensor unit 140 of the BIMdevice 100), the precise placement system 200 is configured to triggerthe printer unit 180 to simultaneously print as the BIM device 100 movesalong the surface (e.g., via handheld movement by a user 30), based onthe layout and design information, at least one of the following: (1)one or more layout markings on the surface, wherein each layout markingis indicative of a precise location of a piece of anchoring hardware tobe embedded/installed with a small error tolerance (e.g., of about1/16^(th) inch), and (2) one or more product identification (ID)markings on the same surface, wherein each product ID marking ispositioned adjacent to a layout marking and identifies a particularpiece of anchoring hardware (e.g., a type of anchoring bolt) to beembedded/installed at the layout marking.

In one embodiment, the system 200 comprises an accuracy unit 260configured to ensure accuracy of printing of the printer unit 180. Inone embodiment, the accuracy unit 260 is configured to receive one ormore measurements from one or more sources indicative of a location ofthe printer unit 180 relative to a surface that the printer unit 180 isdirectly positioned on top of. For example, in one embodiment, eachmovable unit 170 (e.g., each roller wheel 170A) comprises an individualcounter (e.g., a part counter typically used in CNC equipment)configured to provide counter information indicative of progress of themovable unit 170 as it moves (e.g., rolls) on top of a surface. Theaccuracy unit 260 is configured to receive counter information from eachmovable unit 170, and compare counter information for one movable unit170 against counter information for another movable unit 170 to locatewhere the printer unit 180 should print markings on the surface, therebyensure accuracy of printing. In one embodiment, the accuracy unit 260 isconfigured to detect a skip or a slippage as the movable units 170 moveagainst the surface based on the comparison. In the event the accuracyunit 260 detects a skip or a slippage, the accuracy unit 260 alerts theprinter action initiator 250 which in turn triggers the printer unit 180to stop printing markings (via the action API). The device control andstate logic unit 220 may trigger the one or more movable units 170 tostop moving (e.g., lock the roller wheels 170A) in response to theprinter unit 180 stopping printing.

As another example, in one embodiment, the accuracy unit 260 utilizeslaser technology (e.g., such as, but not limited to, laser measurement,laser balancing, laser leveling, etc.), instead of counters, to locatewhere the printer unit 180 should print markings on a surface, therebyensure accuracy of printing. For example, a base plate can be fastenedto a far corner of the surface that a laser of the BIM device 100 canuse as a benchmark to read from and locate itself.

As yet another example, the accuracy unit 260 utilizes both lasertechnology and counters to locate where the printer unit 180 shouldprint markings on a surface, thereby ensure accuracy of printing. Forexample, in one embodiment, the accuracy unit 260 is configured totriangulate a location of the BIM device 100 based on multiplemeasurements from multiples sources to ensure the accuracy of theprinting, such as a measurement from a laser of the BIM device 100(e.g., a measurement obtained using a base plate fastened to a farcorner of the surface that the laser can use as a benchmark to read fromand locate itself) and each measurement (i.e., counter information) fromeach counter in each movable unit 170.

In one embodiment, the system 200 comprises a feedback unit 270configured to provide feedback alerting/warning a user 30 of an error sothe user 30 can avoid erroneous markings. For example, if the accuracyunit 260 detects a skip or a slippage and the printer action initiator250 triggers the printer unit 180 to stop printing markings in responseto the skip or slippage detected, the printer action initiator 250 isconfigured to trigger the feedback unit 270 to provide one or morenotifications via one or more I/O units 130 of the BIM device 100, suchas a warning buzzer via a haptic feedback device or an audioreproduction device, a warning light via an indicator light, a warningmessage via a display screen, etc.

In one embodiment, the system 200 maintains one or more rules forcontrolling one or more actions and behaviors (e.g., printing speed,printing in color or black and white only, printing resolution, etc.) ofthe printer unit 180. For example, in one embodiment, one or moreparameters controlling one or more actions and behaviors of the printerunit 180 are selectively adjusted/tuned based on sensor-based contextualinformation collected via at least one sensor unit 140 of the BIM device100.

In one embodiment, the system 200 maintains one or more feedback rulesfor use in controlling when and type of feedback to generate and outputvia the feedback unit 270 based on sensor-based contextual informationcollected via at least one sensor unit 140 of the BIM device 100 (e.g.,types of error notifications).

In one embodiment, the system 200 maintains one or more user permissionstable corresponding to one or more users 30, wherein each userpermission table maintains one or more user permissions for acorresponding user 30. In one embodiment, the printer action initiator250 utilizes a user permissions table corresponding to a user todetermine whether the user 30 is authorized to use the BIM device 100(e.g., print markings via the BIM device 100).

FIG. 4A illustrates a side view of an example BIM device 100, in one ormore embodiments. FIG. 4A illustrates a front view of the example BIMdevice 100, in one or more embodiments. In one embodiment, the printerunit 180 comprises an inkjet printhead 180A. In one embodiment, the oneor more movable units 170 comprise roller wheels 170A. In oneembodiment, the one or more I/O units 130 comprise a display screen 130Aand an input port 130B (e.g., a USB port).

In one example application use, prior to concrete being poured, a user30 can utilize the BIM device 100 to mark, on a top edge 10A of a formboard 10, a correct location of each piece of anchoring hardware to beembedded in the concrete as well as a corresponding product ID of thepiece of anchoring hardware. As shown in FIGS. 4A-4B, the BIM device 100is positioned directly on top of the form board 10, such that the rollerwheels 170A can roll along the top edge 10A of the form board 10.

In one embodiment, the BIM device 100 requires that a surface be cleanbefore the printer unit 180 can print markings on the surface. Forexample, if a form board 10 is being re-used, the form board 10 can bespray painted before the printing to create a new clean surface on whichthe printer unit 180 can print markings. In one embodiment, at least onsensor unit 140 of the BIM device 100 can be used to detect dirt orother particles on the surface that makes it unsuitable to be printedon, and the feedback unit 270 can generate a notification alerting theuser 30 of the detected particles.

FIG. 5 illustrates example markings 500 printed by the BIM device 100 inFIGS. 4A-4B, in one or more embodiments. The markings 500 on the topedge 10A of the form board 10 can include layout markings and product IDmarkings.

In another embodiment, the printer unit 180 comprises a strip printerinstead. In the print mode, the precise placement system 200 isconfigured to trigger the strip printer to print, based on an inputfile, markings on non-stretching tape. Each object to be marked (e.g.,each fully assembled wall) may be numbered and have a correspondingpre-printed roll of tape including markings printed by the stripprinter. For each object, a solvent may be sprayed on a surface of theobject (e.g., a top edge of a form board) that causes the adhesive on acorresponding pre-printed roll of tape to activate when the pre-printedroll of tape is unrolled and applied to the surface.

Structures that are built using stick framing can benefit from eitherembodiments (inkjet printhead or strip printer). For example, a user 30can provide all pertinent information (e.g., anchors, hold downs, kingposts, strong walls, etc.) into a software application used to design afully assembled wall, and then download an input file generated by thesoftware application to a BIM device 100 comprising either an inkjetprinthead or a strip printer. Utilizing the BIM device 100 results inmore accurate field-built structures.

FIG. 6 illustrates a flowchart of an example process 700 forimplementing precise placement utilizing a portable handheld BIM device,in one or more embodiments. Process block 701 includes receiving layoutand design information. Process block 702 includes receiving, from atleast one sensor of a device (e.g., at least one sensor unit 140 of aBIM device 100), contextual information indicative that at least onemovable unit of the device (e.g., at least one movable unit 170 of theBIM device 100) is in direct contact with a surface. Process block 703includes triggering a printer of the device (e.g., a printer unit 180 ofthe BIM device 100) to print one or more markings on the surface as theat least one movable unit moves along the surface based on the layoutand design information.

In one embodiment, process blocks 701-703 may be performed utilizing oneor more components of the BIM device 100, such as the precise placementsystem 200.

FIG. 7 is a high-level block diagram showing an information processingsystem comprising a computer system 600 useful for implementing thedisclosed embodiments. The system 200 may be incorporated in thecomputer system 600. The computer system 600 includes one or moreprocessors 601, and can further include an electronic display device 602(for displaying video, graphics, text, and other data), a main memory603 (e.g., random access memory (RAM)), storage device 604 (e.g., harddisk drive), removable storage device 605 (e.g., removable storagedrive, removable memory module, a magnetic tape drive, optical diskdrive, computer readable medium having stored therein computer softwareand/or data), viewer interface device 606 (e.g., keyboard, touch screen,keypad, pointing device), and a communication interface 607 (e.g.,modem, a network interface (such as an Ethernet card), a communicationsport, or a PCMCIA slot and card). The communication interface 607 allowssoftware and data to be transferred between the computer system andexternal devices. The system 600 further includes a communicationsinfrastructure 608 (e.g., a communications bus, cross-over bar, ornetwork) to which the aforementioned devices/modules 601 through 607 areconnected.

Information transferred via communications interface 607 may be in theform of signals such as electronic, electromagnetic, optical, or othersignals capable of being received by communications interface 607, via acommunication link that carries signals and may be implemented usingwire or cable, fiber optics, a phone line, a cellular phone link, aradio frequency (RF) link, and/or other communication channels. Computerprogram instructions representing the block diagram and/or flowchartsherein may be loaded onto a computer, programmable data processingapparatus, or processing devices to cause a series of operationsperformed thereon to generate a computer implemented process. In oneembodiment, processing instructions for one or more process blocks ofprocess 700 (FIG. 6) may be stored as program instructions on the memory603, storage device 604 and the removable storage device 605 forexecution by the processor 601.

Embodiments have been described with reference to flowchartillustrations and/or block diagrams of methods, apparatus (systems) andcomputer program products. Each block of such illustrations/diagrams, orcombinations thereof, can be implemented by computer programinstructions. The computer program instructions when provided to aprocessor produce a machine, such that the instructions, which executevia the processor create means for implementing the functions/operationsspecified in the flowchart and/or block diagram. Each block in theflowchart/block diagrams may represent a hardware and/or software moduleor logic. In alternative implementations, the functions noted in theblocks may occur out of the order noted in the figures, concurrently,etc.

The terms “computer program medium,” “computer usable medium,” “computerreadable medium”, and “computer program product,” are used to generallyrefer to media such as main memory, secondary memory, removable storagedrive, a hard disk installed in hard disk drive, and signals. Thesecomputer program products are means for providing software to thecomputer system. The computer readable medium allows the computer systemto read data, instructions, messages or message packets, and othercomputer readable information from the computer readable medium. Thecomputer readable medium, for example, may include non-volatile memory,such as a floppy disk, ROM, flash memory, disk drive memory, a CD-ROM,and other permanent storage. It is useful, for example, for transportinginformation, such as data and computer instructions, between computersystems. Computer program instructions may be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

As will be appreciated by one skilled in the art, aspects of theembodiments may be embodied as a system, method or computer programproduct. Accordingly, aspects of the embodiments may take the form of anentirely hardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.” Furthermore,aspects of the embodiments may take the form of a computer programproduct embodied in one or more computer readable medium(s) havingcomputer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readablestorage medium. A computer readable storage medium may be, for example,but not limited to, an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, apparatus, or device, or any suitablecombination of the foregoing. More specific examples (a non-exhaustivelist) of the computer readable storage medium would include thefollowing: an electrical connection having one or more wires, a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), an optical fiber, a portable compact disc read-onlymemory (CD-ROM), an optical storage device, a magnetic storage device,or any suitable combination of the foregoing. In the context of thisdocument, a computer readable storage medium may be any tangible mediumthat can contain, or store a program for use by or in connection with aninstruction execution system, apparatus, or device.

Computer program code for carrying out operations for aspects of one ormore embodiments may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of one or more embodiments are described above with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products. It will be understood that eachblock of the flowchart illustrations and/or block diagrams, andcombinations of blocks in the flowchart illustrations and/or blockdiagrams, can be implemented by computer program instructions. Thesecomputer program instructions may be provided to a special purposecomputer, or other programmable data processing apparatus to produce amachine, such that the instructions, which execute via the processor ofthe computer or other programmable data processing apparatus, createmeans for implementing the functions/acts specified in the flowchartand/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments. In this regard, each block in the flowchart or blockdiagrams may represent a module, segment, or portion of instructions,which comprises one or more executable instructions for implementing thespecified logical function(s). In some alternative implementations, thefunctions noted in the block may occur out of the order noted in thefigures. For example, two blocks shown in succession may, in fact, beexecuted substantially concurrently, or the blocks may sometimes beexecuted in the reverse order, depending upon the functionalityinvolved. It will also be noted that each block of the block diagramsand/or flowchart illustration, and combinations of blocks in the blockdiagrams and/or flowchart illustration, can be implemented by specialpurpose hardware-based systems that perform the specified functions oracts or carry out combinations of special purpose hardware and computerinstructions.

References in the claims to an element in the singular is not intendedto mean “one and only” unless explicitly so stated, but rather “one ormore.” All structural and functional equivalents to the elements of theabove-described exemplary embodiment that are currently known or latercome to be known to those of ordinary skill in the art are intended tobe encompassed by the present claims. No claim element herein is to beconstrued under the provisions of 35 U.S.C. section 112, sixthparagraph, unless the element is expressly recited using the phrase“means for” or “step for.”

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the embodiments has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the embodiments in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention.

Though the embodiments have been described with reference to certainversions thereof, however, other versions are possible. Therefore, thespirit and scope of the appended claims should not be limited to thedescription of the preferred versions contained herein.

What is claimed is:
 1. A device comprising: at least one movable unit; at least one sensor; a printer; at least one processor; and a non-transitory processor-readable memory device storing instructions that when executed by the at least one processor causes the at least one processor to perform operations including: receiving layout and design information, wherein the layout and design information comprises data indicative of one or more locations on a surface to embed or install one or more pieces of anchoring hardware to anchor and support a structure; receiving, from the at least one sensor, contextual information indicative that the at least one movable unit is in direct contact with the surface; and in response to receiving the contextual information, triggering the printer to print one or more markings on the surface as the at least one movable unit moves along the surface, wherein the resulting one or more markings printed on the surface are based on the layout and design information, and the one or more markings printed on the surface represent the one or more locations on the surface to embed or install the one or more pieces of anchoring hardware, such that the one or more pieces of anchoring hardware are embedded or installed in accordance with the one or more markings printed on the surface.
 2. The device of claim 1, wherein the at least one movable unit comprises one or more roller wheels.
 3. The device of claim 1, wherein the printer comprises an inkjet printhead.
 4. The device of claim 1, wherein the one or more pieces of anchoring hardware comprise at least one of: an anchor bolt, a hold down device, or a strap.
 5. The device of claim 4, wherein the one or more markings printed on the surface comprise at least one of the following: a layout marking indicative of a location on the surface to embed or install a piece of anchoring hardware of the one or more pieces of anchoring hardware and an error tolerance corresponding to the location, and a product identification (ID) marking positioned adjacent to the layout marking and identifying the piece of anchoring hardware to be embedded or installed at the layout marking.
 6. The device of claim 1, wherein the operations further comprise: receiving one or more measurements indicative of a location of the device; determining whether there is an error involving the at least one movable unit based on the one or more measurements; and triggering the printer to stop printing the one or more markings on the surface in response to determining there is an error involving the at least one movable unit.
 7. The device of claim 6, wherein the error is a skip or slippage of the at least one movable unit on the surface as the at least one movable unit moves along the surface.
 8. The device of claim 6, wherein the one or more measurements are received from at least one counter of the at least one movable unit.
 9. The device of claim 6, wherein the one or more measurements are received from a laser of the device.
 10. A method comprising: receiving layout and design information, wherein the layout and design information comprises data indicative of one or more locations on a surface to embed or install one or more pieces of anchoring hardware to anchor and support a structure; receiving, from at least one sensor of a device, contextual information indicative that at least one movable unit of the device is in direct contact with the surface; and in response to receiving the contextual information, triggering a printer of the device to print one or more markings on the surface as the at least one movable unit moves along the surface, wherein the resulting one or more markings printed on the surface are based on the layout and design information, and the one or more markings printed on the surface represent the one or more locations on the surface to embed or install the one or more pieces of anchoring hardware, such that the one or more pieces of anchoring hardware are embedded or installed in accordance with the one or more markings printed on the surface.
 11. The method of claim 10, wherein the at least one movable unit comprises one or more roller wheels.
 12. The method of claim 10, wherein the printer comprises an inkjet printhead.
 13. The method of claim 10, wherein the one or more pieces of anchoring hardware comprise at least one of: an anchor bolt, a hold down device, or a strap.
 14. The method of claim 13, wherein the one or more markings printed on the surface comprise at least one of the following: a layout marking indicative of a location on the surface to embed or install a piece of anchoring hardware of the one or more pieces of anchoring hardware and an error tolerance corresponding to the location, and a product identification (ID) marking positioned adjacent to the layout marking and identifying the piece of anchoring hardware to be embedded or installed at the layout marking.
 15. The method of claim 10, wherein the operations further comprise: receiving one or more measurements indicative of a location of the device; determining whether there is an error involving the at least one movable unit based on the one or more measurements; and triggering the printer to stop printing the one or more markings on the surface in response to determining there is an error involving the at least one movable unit.
 16. The method of claim 15, wherein the error is a skip or slippage of the at least one movable unit on the surface as the at least one movable unit moves along the surface.
 17. The method of claim 15, wherein the one or more measurements are received from at least one of the following: at least one counter of the at least one movable unit, or a laser of the device.
 18. A non-transitory processor-readable medium that includes a program that when executed by a processor performs a method comprising: receiving layout and design information, wherein the layout and design information comprises data indicative of one or more locations on a surface to embed or install one or more pieces of anchoring hardware to anchor and support a structure; printing, via a strip printer, one or more markings on a tape strip based on the layout and design information, wherein the tape strip including the resulting one or more markings printed on the tape strip is applied to the surface, and the one or more markings printed on the tape strip applied to the surface represent the one or more locations on the surface to embed or install the one or more pieces of anchoring hardware, such that the one or more pieces of anchoring hardware are embedded or installed in accordance with the one or more markings printed on the tape strip applied to the surface.
 19. The non-transitory processor-readable medium of claim 18, wherein the one or more pieces of anchoring hardware comprise at least one of: an anchor bolt, a hold down device, or a strap.
 20. The non-transitory processor-readable medium of claim 18, wherein the one or more markings printed on the tape strip applied to the tape strip comprise at least one of the following: a layout marking indicative of a location on the surface to embed or install a piece of anchoring hardware of the one or more pieces of anchoring hardware and an error tolerance corresponding to the location, and a product identification (ID) marking positioned adjacent to the layout marking and identifying the piece of anchoring hardware to be embedded or installed at the layout marking. 